import {createRouter,createWebHashHistory,createWebHistory} from 'vue-router'
// 1. 定义路由组件.
// 也可以从其他文件导入

// 2. 定义一些路由
// 每个路由都需要映射到一个组件。
// 我们后面再讨论嵌套路由。
const routes = [
  { path: '/', component: () => import('@views/Home.vue')},
  {name:'order', path: '/order', component: () => import('@views/user/Order.vue')},
  {
    path: '/sys',
    component: ()=>import('@views/sys/index.vue'),
    children: [
      {
        path: 'user',
        meta:{ name:'用户管理'},
        component: () => import('@views/sys/User.vue'),
      },
      {
        // 当 /user/:id/posts 匹配成功
        // UserPosts 将被渲染到 User 的 <router-view> 内部
        path: 'order',
        meta:{ name:'订单管理'},
        component: () => import('@views/sys/Order.vue'),
      },
      {
        // 当 /user/:id/posts 匹配成功
        // UserPosts 将被渲染到 User 的 <router-view> 内部
        path: 'car',
        meta:{ name:'车辆管理'},
        component: () => import('@views/sys/Car.vue'),
      },
      {
        // 当 /user/:id/posts 匹配成功
        // UserPosts 将被渲染到 User 的 <router-view> 内部
        path: 'move',
        meta:{ name:'搬家参数设置'},
        component: () => import('@views/sys/Move.vue'),
      },
    ],
  },
]

// 3. 创建路由实例并传递 `routes` 配置
// 你可以在这里输入更多的配置，但我们在这里
// 暂时保持简单
const router =createRouter({
  // 4. 内部提供了 history 模式的实现。为了简单起见，我们在这里使用 hash 模式。
  // history: createWebHistory(),
  history: createWebHashHistory(),
  routes, // `routes: routes` 的缩写
})

router.beforeEach((to, from, next) => {
  if (to.path !== '/' && !localStorage.getItem('userId')) next({ path: '/' })
  else next()
})

export default router